package br.com.traffic.help.dao;

import java.lang.reflect.Type;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.traffic.help.model.EntidadeDominio;
import br.com.traffic.help.model.TipoUnidade;
import br.com.traffic.help.util.HibernateUtil;

public class GenericDAO {

	public void salvar(EntidadeDominio dominio){
		
		Session s = new HibernateUtil().openSession();
		
		Transaction t = s.beginTransaction();
		
		s.saveOrUpdate(dominio);
		
		t.commit();
		
		
		s.close();
		
		
	}
	
	public List listarTodos(Class classe){
		
		Session s = new HibernateUtil().openSession();
		
		Criteria c = s.createCriteria(classe);
		
		List retorno = c.list();
		
		s.close();
		
		return retorno;
		
	}
	
	public EntidadeDominio buscaId(EntidadeDominio dominio){
		
		Session s = new HibernateUtil().openSession();
		
		EntidadeDominio retorno  = (EntidadeDominio) s.load(dominio.getClass(), dominio.getId()); ;

		s.close();

		return retorno; 
		
	}
}
